#include "font.h"
#include <unistd.h>

//初始化Lcd
struct LcdDevice *init_lcd(const char *device)
{
	//申请空间
	struct LcdDevice* lcd = malloc(sizeof(struct LcdDevice));
	if(lcd == NULL)
	{
		return NULL;
	} 

	//1打开设备
	lcd->fd = open(device, O_RDWR);
	if(lcd->fd < 0)
	{
		perror("open lcd fail");
		free(lcd);
		return NULL;
	}
	
	//映射
	lcd->mp = mmap(NULL,800*480*4,PROT_READ|PROT_WRITE,MAP_SHARED,lcd->fd,0);

	return lcd;
}

int main()
{
	
    // //初始化Lcd
	// struct LcdDevice* lcd = init_lcd("/dev/fb0");
			
	// //打开字体	
	// font *f = fontLoad("/usr/share/fonts/DroidSansFallback.ttf");
	  
	// //字体大小的设置
	// fontSetSize(f,50);
	
	
	// //创建一个画板（点阵图）
	// bitmap *bm = createBitmapWithInit(570,50,4,getColor(0,255,255,255)); //也可使用createBitmapWithInit函数，改变画板颜色
	// bitmap *bm = createBitmap(288, 100, 4);
	
	// char buf[] = "天下山峰何其多，惟有此处峰成林";
	char *buf[] = {"天下山峰何其多，惟有此处峰成林",
                       "我在贵州等你",
                       "走遍神州大地，醉美多彩贵州",
                       "地球上一道美丽的伤疤"};
        
	//将字体写到点阵图上
	int i = 0;
	while (1)
	{
		//初始化Lcd
		struct LcdDevice* lcd = init_lcd("/dev/fb0");
				
		//打开字体	
		font *f = fontLoad("/usr/share/fonts/DroidSansFallback.ttf");
		
		//字体大小的设置
		fontSetSize(f,50);
		
		
		//创建一个画板（点阵图）
		bitmap *bm = createBitmapWithInit(570,50,4,getColor(0,255,255,255)); //也可使用createBitmapWithInit函数，改变画板颜色

		fontPrint(f,bm,0,0,buf[i],getColor(0,255,0,0),0);
		i = (i + 1) % 4; // 确保索引在0到3之间循环
		// 可以在这里添加一个延迟或等待用户输入来退出循环

		//把字体框输出到LCD屏幕上
		show_font_to_lcd(lcd->mp,23,35,bm);
		sleep(2); // 等待2秒
		//关闭字体，关闭画板
		fontUnload(f);
		destroyBitmap(bm);
		
	}


	
	// //关闭字体，关闭画板
	// fontUnload(f);
	// destroyBitmap(bm);
	
}
